home *** CD-ROM | disk | FTP | other *** search
/ PD Collection CD 1 / PD Collection CD 1.iso / textual / tex / files / !tex / mfinputs / romspl / mf
Encoding:
Text File  |  1988-02-26  |  8.6 KB  |  187 lines

  1. % This is ROMSPL.MF in text format, as of Mar 31, 1986.
  2. % This file contains special letters and letter combinations,
  3. % compatible with the alphabet `{\tt romanl}'.
  4.  
  5. % Codes \0020--\0021 and \0031--\0034 are generated.
  6.  
  7. cmchar "Dotless letter i";
  8. beginchar(oct"020",5u#,x_height#,0);
  9. italcorr x_height#*slant-serif_fit#+.5stem#-2u#;
  10. adjust_fit(serif_fit#+stem_shift# if monospace:+.25u#fi,serif_fit#-stem_shift#);
  11. pickup tiny.nib; pos1(stem',0); pos2(stem',0);
  12. if odd(w-stem'): change_width; fi
  13. lft x1l=hround(.5w-.5stem'); x1=x2;
  14. top y1=x_height if serifs: +min(oo,serif_drop) fi; bot y2=0;
  15. filldraw stroke z1e--z2e;  % stem
  16. if serifs: sloped_serif.l(1,2,a,1/3,.95jut,serif_drop);  % upper serif
  17.  dish_serif(2,1,b,1/3,jut,c,1/3,.9jut); fi  % lower serif
  18. penlabels(1,2); endchar;
  19.  
  20. cmchar "Dotless letter j";
  21. beginchar(oct"021",5.5u#,x_height#,desc_depth#);
  22. italcorr x_height#*slant-serif_fit#+.5stem#-2u#;
  23. adjust_fit(serif_fit#+2stem_shift# if monospace:+.5u# fi,
  24.  serif_fit#-2stem_shift# if monospace:-.5u# fi);
  25. pickup tiny.nib; pos1(stem',0); pos2(stem',0);
  26. rt x1r=hround(.5w+.25u+.5stem'); x1=x2;
  27. top y1=x_height if serifs: +min(oo,serif_drop) fi; bot y2=-1/3d;
  28. filldraw stroke z1e--z2e;  % stem
  29. if serifs: sloped_serif.l(1,2,a,1/3,1.1jut,serif_drop);  % upper serif
  30.  pickup tiny.nib; pos5(vair,-90); pos6(hair,-180); pos7(flare,-180);
  31.  x5=.5[x2,x6r]; bot y5r=-d-oo; y6-.5flare=-.88d;
  32.  if monospace: lft x6r=0 else: z6r=z7r; rt x7l=floor .75u fi;
  33.  (x,y5r)=whatever[z5l,z2l]; x5r:=max(x,.5[x6r,x5]);
  34.  filldraw stroke z2e{down}...z5e{left};  bulb(5,6,7); % arc and bulb
  35. else: pickup fine.nib; pos2'(stem',0); z2'=z2;
  36.  pos6(.2[vair,stem'],-90); pos7(vair,-90);
  37.  lft x7r=hround -.75u; bot y7r=vround 5/6(-d-oo);
  38.  x3r=x1r; top y4r=min(2x_height,h+1);
  39.  (x,y7l)=whatever[z7r,(x1,min(h,asc_height))]; x7l:=x;
  40.  z5r=z2'r; (x2'l,y5l)=whatever[z7l,z5r]; x5l=x2'l; y5=y5r;
  41.  x6r=.5[x7r,x5r]; x6l:=.5[x7l,x5l]; bot y6r=-d-oo;
  42.  filldraw stroke z2'e..{down}z5e & super_arc.e(5,6)
  43.   & term.e(6,7,left,1,4); fi  % arc and terminal
  44. penlabels(1,2,5,6,7); endchar;
  45.  
  46. cmchar "German letter es-zet (sharp s)";
  47. beginchar(oct"031",4.5u#+max(4.5u#,.5stem#+flare#+curve#),asc_height#,0);
  48. italcorr asc_height#*slant-u#;
  49. adjust_fit(serif_fit#,0);
  50. pickup tiny.nib; pos1(stem',0); pos2(stem',0);
  51. lft x1l=lft x2l=hround(2.5u-.5stem'); bot y1=0; y2=y4=.5[x_height,y3];
  52. penpos3(vair-fine,90); fine.top y3r=h+oo;
  53. filldraw stroke z1e--z2e;  % stem
  54. numeric stem_edge,curve'; stem_edge=rt x1r; curve'=hround .5[stem',curve];
  55. pickup fine.nib; pos4(curve',0); pos5(vair,-90);
  56. pos2'(stem',180); z2'=z2; x3=.5[x2,x4]; rt x4r=hround(w-u);
  57. top y5l=x_height; lft x5=min(lft x4l,hround(stem_edge+u));
  58. filldraw stroke pulled_super_arc.e(2',3)(.5superpull)
  59.  & pulled_super_arc.e(3,4)(.5superpull)
  60.  & pulled_super_arc.e(4,5)(.5superpull);  % upper bowl
  61. pos5'(vair,90); z5'=z5; pos6(curve',0); pos7(vair,-90);
  62. rt x6r=hround(w-.5u)+3eps; y6=.4x_height; bot y7r=-oo;
  63. if serifs: pos8(hair,-180) else: pos8(vair,-110) fi;
  64. lft x8r=min(hround(stem_edge+.5u+1),lft x8r+x6r-2eps-x8l);
  65. x7=max(x8l+eps,.4[lft x8r,x6]);
  66. filldraw stroke pulled_super_arc.e(5',6)(.5superpull)
  67.  & pulled_super_arc.e(6,7)(.5superpull);  % lower bowl
  68. if serifs: pos9(5/7[vair,flare],-180);
  69.  y9-(x9-lft x9r)=vround .07x_height; bulb(7,8,9);  % bulb
  70.  penpos0(stem'-tiny,0); x0=x1; tiny.top y0=x_height;
  71.  serif(0,1,a,0,-jut);  % bar
  72.  dish_serif(1,2,b,1/3,jut,c,0,epsilon);  % serif
  73. else: bot y8r=vround .01h; x8l:=good.x x8l; y8l:=good.y(y8l+.5);
  74.  filldraw stroke term.e(7,8,left,1,4); fi  % terminal
  75. penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
  76.  
  77. cmchar "The ligature ae";
  78. beginchar(oct"032",13u#,x_height#,0);
  79. italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
  80. adjust_fit(0,0);
  81. numeric left_curve,right_curve;
  82. if monospace: right_curve=left_curve=fudged.stem;
  83. else: left_curve=max(tiny.breadth,hround(curve-2stem_corr));
  84.  right_curve=max(tiny.breadth,hround(curve-if serifs:6 else:8 fi\\stem_corr));fi
  85. pickup tiny.nib; pos11(right_curve,0);
  86. pos12(vair,90); pos13(mfudged.stem,180);
  87. y11=good.y bar_height; top y12r=h+vround 1.5oo; y10l=bot y11;
  88. rt x11r=hround min(w-.5u,w-u+.5right_curve);
  89. lft x13r=hround (.5w-.5mfudged.stem); x12=.55[x13,x11];
  90. {{interim superness:=more_super;
  91.  filldraw stroke super_arc.e(11,12)}};  % right bowl of e
  92. y13=.5[y12,y14]; bot y14r=-oo; x14=x12+.25u;
  93. if serifs: pos14(vair',270); pos15(mfudged.hair,360);
  94.  y15=max(good.y(.5bar_height-.9),y14l+vair); x15r=x11r;
  95.  (x,y14l)=whatever[z14r,z15]; x14l:=min(x,x14l+.5u);
  96.  filldraw stroke pulled_arc.e(12,13)
  97.   & pulled_super_arc.e(13,14)(.8superpull)
  98.   ...{x15-x14,5(y15-y14)}z15e; % left bowl, arc, and terminal of e
  99. else: pos14(vair,270);
  100.  filldraw stroke super_arc.e(12,13)
  101.   & super_arc.e(13,14);  % left bowl and arc of e
  102.  pickup fine.nib; pos14'(vair,270); z14=z14';
  103.  pos15(.5[vair,flare],275); rt x15r=hround(w-.6u);
  104.  y15r=good.y(y15r+1/3bar_height-y15); y15l:=good.y y15l; x15l:=good.x x15l;
  105.  filldraw stroke term.e(14',15,right,1,4); fi  % right terminal
  106. y11'r=y10r=y10l+.6[thin_join,vair]; y11'l=y10l; x11'l=x11'r=x11; x10l=x10r=x13;
  107. fill stroke z10e--z11'e;  % crossbar
  108. pickup fine.nib; top y3r=h+vround 1.5oo;
  109. if serifs: pos1(flare,180); pos2(mfudged.hair,180);
  110.  pos3(vair,90);  lft x1r=hround max(u,2.1u-.5flare); x3=4u;
  111.  y1=min(bar_height+.5flare+2vair+2,.9[bar_height,h]-.5flare);
  112.  bulb(3,2,1);  % bulb
  113. else: pos1(5/7[vair,flare],95); x1l=good.x 1.5u; x1r:=good.x x1r;
  114.  pos3(1/8[vair,thin_join],90);
  115.  x3=4.3u; top y1r=vround .82[bar_height,top y3r];
  116.  filldraw stroke term.e(3,1,left,.9,4); fi  % left terminal
  117. pos4(mfudged.stem,0); x4=x13; y4=1/3[bar_height,h];
  118. pos5(mfudged.stem,0); x5=x4; y5=min(y4,y13);
  119. filldraw stroke super_arc.e(3,4)&z4e--z5e;  % arc and stem
  120. pos6(.6[thin_join,vair],90); x6=x4; bot y6=y10l;
  121. pos7(left_curve,180);
  122. lft x7r=hround max(.5u,1.5u-.5left_curve); y7=1/3[top y8l,top y6r];
  123. pos8(vair,270); x8l=3.75u; bot y8r=-oo;
  124. pos9(.5[vair,fudged.stem],360); x9=x5; y9=.55bar_height;
  125. (x',y8r)=whatever[z8l,z9l]; x8r:=max(x',x8-u);
  126. {{interim superness:=more_super;
  127.  filldraw stroke z9e{down}...z8e{left}...{up}z7e&super_arc.e(7,6)}}; % bowl
  128. if y9<y5: filldraw stroke z5e{down}..{down}z9e; fi  % link (usually hidden)
  129. penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); endchar;
  130.  
  131. cmchar "The ligature oe";
  132. beginchar(oct"033",14u#,x_height#,0);
  133. italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
  134. adjust_fit(0,0);
  135. numeric left_curve,right_curve;
  136. if monospace: right_curve=left_curve=fudged.stem;
  137. else: left_curve=max(fine.breadth,hround(curve-2stem_corr));
  138.  right_curve=max(tiny.breadth,hround(curve-if serifs:6 else:8 fi\\stem_corr));fi
  139. pickup tiny.nib; pos11(right_curve,0);
  140. pos12(vair,90); pos13(mfudged.stem,180);
  141. y11=good.y bar_height; top y12r=h+vround 1.5oo; y10l=bot y11;
  142. rt x11r=hround min(w-.5u,w-u+.5right_curve);
  143. lft x13r=hround (.5(w+u)-.5mfudged.stem); x12=.55[x13,x11];
  144. {{interim superness:=more_super;
  145.  filldraw stroke super_arc.e(11,12)}};  % right bowl of e
  146. y13=.5[y12,y14]; bot y14r=-oo; x14=x12+.25u;
  147. if serifs: pos14(vair',270); pos15(mfudged.hair,360);
  148.  y15=max(good.y(.5bar_height-.9),y14l+vair); x15r=x11r;
  149.  (x,y14l)=whatever[z14r,z15]; x14l:=min(x,x14l+.5u);
  150.  filldraw stroke pulled_arc.e(12,13)
  151.   & pulled_super_arc.e(13,14)(.8superpull)
  152.   ...{x15-x14,5(y15-y14)}z15e; % left bowl, arc, and terminal of e
  153. else: pos14(vair,270);
  154.  filldraw stroke super_arc.e(12,13)
  155.   & super_arc.e(13,14);  % left bowl and arc of e
  156.  pickup fine.nib; pos14'(vair,270); z14=z14';
  157.  pos15(.5[vair,flare],275); rt x15r=hround(w-.6u);
  158.  y15r=good.y(y15r+1/3bar_height-y15); y15l:=good.y y15l; x15l:=good.x x15l;
  159.  filldraw stroke term.e(14',15,right,1,4); fi  % terminal
  160. y11'r=y10r=y10l+.6[thin_join,vair]; y11'l=y10l; x11'l=x11'r=x11; x10l=x10r=x13;
  161. fill stroke z10e--z11'e;  % crossbar
  162. pickup fine.nib; pos1(vair,90); pos3(vair,-90);
  163. pos2(left_curve,180); pos4(mfudged.stem,0);
  164. lft x2r=hround max(.5u,1.25u-.5curve);
  165. z4=z13; x1=x3=.5[x2,x4]; top y1r=h+vround 1.5oo; bot y3r=-oo;
  166. y2=y4; y2l:=y4l:=.52h;
  167. filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3); % left half of left bowl
  168. filldraw stroke pulled_arc.e(3,4) & pulled_arc.e(4,1); % right half of left bowl
  169. penlabels(1,2,3,4,10,11,12,13,14,15); endchar;
  170.  
  171. cmchar "Scandinavian letter o/slash";
  172. beginchar(oct"034",9u#,x_height#+.5desc_depth#,.5desc_depth#);
  173. italcorr h#*slant-u#-max(.5fudge*stem#,.75u#)+.5vair#;
  174. adjust_fit(0,0);
  175. penpos1(vair,90); penpos3(vair,-90);
  176. penpos2(fudged.stem,180); penpos4(fudged.stem,0);
  177. x2r=hround max(.5u,1.25u-.5fudged.stem);
  178. x4r=w-x2r; x1=x3=.5w;
  179. y1r=x_height+vround 1.5oo; y2=y4=.5x_height-vair_corr; y3r=-oo;
  180. penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
  181.  & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle;  % bowl
  182. x5=x4; x6=x2; y5=h; y6=-d;
  183. numeric theta; theta=angle(z5-z6)-90;
  184. pickup crisp.nib; pos5(vair,theta); pos6(vair,theta);
  185. filldraw stroke z5e--z6e;  % diagonal
  186. penlabels(1,2,3,4,5,6); endchar;
  187.